The present invention relates generally to improvements in embedded systems. More specifically, the present invention relates to improvements in the updating of program memory in embedded systems through the use of an optical update probe.
Many electronic products utilize embedded software which is permanently encoded into a hardware part such as read-only memory (ROM). This technique is widely used in products which have a dedicated application, unlike general purpose computers which can run a multitude of different software programs uploaded from disk and executed out of random access memory (RAM). Embedded software, or firmware, is generally intended to remain within the embedded system permanently, although increasingly product manufacturers are allowing infrequent updates of the firmware by the replacement of the ROM, or allowing the reprogramming of a programmable read-only memory (PROM). More recent technology has allowed the product design to accommodate the reprogramming of the firmware by using such parts as flash memory to replace the earlier ROM and PROM devices. Erasable and reprogrammable devices, such as flash memory, allow the reprogramming to be done xe2x80x9cin circuitxe2x80x9d utilizing an appropriate interface. A number of manufacturers supply flash and similar devices to allow the xe2x80x9cin circuitxe2x80x9d programming.
The use of optical communication links to transfer small amounts of data between handheld devices and microcomputer or microprocessor based products is well known in many areas including the vending machine industry, the computer industry and the consumer electronics industry. For these types of applications, the small amount of data being transferred is typically stored in volatile RAM.
Recently, the requirements for products to be updated during operation in the field has led to a number of technologies which allow such updating capabilities. In many instances, it is the operating system or program memory that needs to be updated. Examples of such updates in the vending industry include the changing requirements of data which many operators of vending routes are requiring in order to run their businesses. New data types are being added to industry specifications, resulting in updates to the program software in vending machines. It is not uncommon in the vending industry to see a large number of program updates to accommodate bug fixes, requirement changes, and general improvements in the products.
The same challenges face the manufacturers of the peripheral devices used in the vending industry such as bill acceptors, coin changers, and card readers. Not only does the data content change often, with new bills and coins being introduced, but just as often the computer program to interpret this data must be changed, for example, to address features previously unanticipated, such as new counterfeit algorithms.
Similar requirements exist outside the vending industry. In many cases, external events force the need for updates to products that were not anticipated in the original design. Notable examples include the year 2000 software bug which has forced many products to be updated to account for a four digit year code instead of a two digit year code and the changing requirement in some areas that force the use of ten digits when dialing a local phone number instead of seven digits.
Currently, the apparatus to update these types of products in the field is costly, awkward, and time consuming. Most such updates of program memory require the replacement of an electronic component such as a ROM device, an erasable programmable read-only memory device (EPROM) device, a microcomputer, or an embedded controller. Often times, these parts are in a socket which is deeply embedded within the product. A properly trained person may replace the socketed part with the updated part in the field. This field replacement is costly and requires the person to have access to the electronics. In gaining access to the electronics in a vending machine, access may also be gained to money stored in the machine. Thus, security concerns may be presented by access. Other security concerns are presented in other contexts. Alternatively, a board or component may be swapped out for an updated component, with the out of date component shipped to a supplier for updating. Again, this approach is costly and requires opening up a product to gain access.
Some products have anticipated the need for such updates and have used such devices as flash memory or electrically erasable programmable read-only memory (EEPROM) and provided the associated hardware and firmware to allow the update of these devices in the field. This update is typically accomplished by using either a computer connected through a serial communication link, such as RS-232, or a phone line modem connection to a host computer to download the updated software. Each of these latter techniques involves considerable cost and technical expertise on the part of the person performing the update. In the case of the modem connection to the host computer, local expertise is required in order to receive the updated program code, load it into the computer, interface to the product to be updated, and ensure a successful update.
Accordingly, it would be advantageous to provide a reliable, quick and cost effective method for updating program memory in an embedded system product without the need for xe2x80x9con sitexe2x80x9d technical expertise. Additionally, it would be advantageous to provide a system and method for updating the program memory of devices which are not readily accessible, obviating the need to open equipment and avoiding the potential safety or security problems.
The present invention provides advantageous methods and apparatus for updating program memory in embedded system products. According to one aspect of the present invention, a portable update device optically communicates with an embedded system and provides an update of the program memory of the embedded system.
In another aspect, the present invention provides a reliable, quick, cost effective method for updating program memory in an embedded system.
Further, the present invention provides a safe and secure apparatus and method for updating the program memory of an embedded system in situations where the embedded system to be updated is not readily physically accessible.
Additionally, one embodiment of the present invention provides methods and apparatus for updating the program memory of an embedded system without the need for xe2x80x9con sitexe2x80x9d technical expertise.
A more complete understanding of the present invention, as well as further features and advantages of the invention, will be apparent from the following detailed description and the accompanying drawings.